package com.cjxt.ams.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cjxt.ams.domain.Menu;
import com.cjxt.ams.domain.TreeNode;
import com.cjxt.ams.domain.TreeNodeUser;

import java.util.List;

/**
 * @author zhanghuan
 * @version V1.0
 * @Description: 系统菜单 业务层接口
 * @className: MenuService
 * @date 2021/11/22 11:20
 * @company:华勤技术股份有限公司
 * @copyright: Copyright (c) 2021
 */
public interface MenuService extends IService<Menu> {

    /**
     * @description: 根据父菜单ID，查询子菜单
     * @author zhanghuan
     * @date: 2021/11/22 11:28
     * @Param: menuPid 父菜单ID
     * @return: java.util.List<com.cjxt.ams.domain.Menu>
     */
    List<Menu> queryListMenuPid(Integer menuPid);

    /**
     * @description: 根据菜单ID删除菜单
     * @author zhanghuan
     * @date: 2021/11/22 14:43
     * @Param: menuId  菜单ID
     * @return: null
     */
    void delete(Integer menuId);

    /**
     * @description: 新增/修改 菜单树形结构
     * @author zhanghuan
     * @date 2021/12/10 16:13
     * @param
     * @return: java.util.List<com.cjxt.ams.domain.TreeNode>
     */
    List<TreeNode> treeData();

    /**
     * @description: 根据用户ID用户的导航菜单
     * @author zhanghuan
     * @date 2021/12/10 16:23
     * @param userId	  用户id
     * @return: java.util.List<com.cjxt.ams.domain.TreeNodeUser>
     */
    List<TreeNodeUser> treeDataUser(Integer userId);

    /**
     * @description: 所有菜单列表处理，  给上级菜单名字赋值
     * @author zhanghuan
     * @date 2021/12/28 10:40
     * @param menuList	  菜单列表
     * @return: java.util.List<com.cjxt.ams.domain.Menu>
     */
    List<Menu> queryList(List<Menu> menuList);

}